0 REM" PONZO*82*WATERLOO 1 [143]" 50 POKE53281,15:POKE53280,12:PRINT"[144]" 100 PRINT"[147] C64 TUTOR-4 101 [153]"ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^" 102 [153]"(null)  INSIDE THE C64 WAIT (null)":MS$[178]" WELCOME! " 103 [153]"/TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPSTOP" 1000 [141]60000:[141]63100:[141]63000 1005 [153]"LOADC64 MEMORY" 1010 [153]"MEMORY RUNS FROM 0 TO 65535 (DECIMAL)" 1020 [153]"OR 0000 TO FFFF (HEXADECIMAL)" 1030 [153]"(WRITTEN $0000 $FFFF)" 1040 [153]"SOME IS FOR YOU..SOME FOR ME." 1050 [153]"(ABOUT HALF/HALF)" 1060 [153]"LET ME SHOW YOU..." 1070 [141]63000 1080 [153]"LOADBOTTOM HALF OF MEMORY" 1090 [153]"DECIMAL HEX" 1100 [153]"32768=$8000-SPC(SPC(SPC(SPC(SPC(SPC(_TOP OF BASIC MEMORY" 1110 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$" 1120 [153]" - - - +" 1125 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)" 1130 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)BASIC" 1140 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)PROGRAMS" 1150 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_(null)IN HERE" 1155 [153]" 2048=$0800-SPC(SPC(SPC(SPC(SPC(SPC(_BASIC MEMORY STARTS" 1160 [153]" 2047=$07FF-SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$SCREEN MEMORY" 1170 [153]" 1024=$0400-SPC(SPC(SPC(SPC(SPC(SPC(_(null)" 1190 [153]" 1023=$03FF SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$" 1200 [153]" SPC(SPC(SPC(SPC(SPC(SPC( MY WORKSPACE" 1210 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)" 1220 [153]" SPC(SPC(SPC(SPC(SPC(SPC( " 1230 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_POINTERS 1240 PRINT" [166][166][166][166][166][166]_TO MAGIC 1250 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_MEMORY LOC'NS" 1260 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_FLAGS,ETC." 1270 [153]" SPC(SPC(SPC(SPC(SPC(SPC(" 1280 [153]" 0=$0000-SPC(SPC(SPC(SPC(SPC(SPC(_(null)BOTTOM" 1290 [141]63000 1300 [153]"LOADI STORE BYTES READ FROM A DATASETTE" 1310 [153]"IN 'BUFFERS' UNTIL I GET ENOUGH" 1320 [153]"TO STUFF INTO 'BASIC MEMORY'" 1330 [153]"(IF THEY'RE BASIC PROGRAMS)." 1340 [153]"THESE ARE (USUALLY) NICE PLACES TO PUT" 1350 [153]"MACHINE LANGUAGE PROGRAMS." 1360 [153]"WHEN YOU DEFINE VARIABLES X,Y,A(I),ETC." 1370 [153]"I STORE THEM AFTER YOUR BASIC PROGRAM." 1380 [153]"WHEN YOU DEFINE STRINGS A$,C$(I),ETC." 1390 [153]"I STORE THEM AT THE 'TOP'." 1400 [153]"TO KEEP TRACK OF WHERE I PUT THINGS" 1410 [153]"I STORE POINTERS IN LOW MEMORY:" 1420 [141]63000 1430 [153]"LOADTHE ADDRESS OF"[163]25)" IS STORED AT" 1440 [153]"FREFREFREFREFREFREFREFREFREFREFREFREFREFREFRE"[163]25)"FREFREFREFREFREFREFREFREFREFREFREFREFREFRE" 1450 [153]"START OF BASIC"[163]25)"43/44 =$2B/$2C" 1460 [153]"^(USUALLY 2049=$0801)" 1470 [153]"END OF PROGRAM"[163]25)"45/46 =$2D/$2E" 1480 [153]"^(VARIES WITH PROGRAM)" 1485 [153]" (AND GIVES START OF )" 1486 [153]" (VARIABLES TOO)" 1487 [153]"BOTTOM OF STRINGS"[163]25)"51/52 =$33/$34" 1488 [153]"^(VARIES WITH PROGRAM)" 1489 [153]" ($7FFF & DOWN_STRINGS)" 1490 [153]"TOP OF BASIC RAM"[163]25)"55/56 =$37/$38" 1500 [153]"^(USUALLY 32768=$8000)" 1501 [153]"NOTE: THE 'TOP OF BASIC RAM' MAY BE AT" 1502 [153]"$A000..IF NO 'CARTRIDGE' IS INVOLVED." 1505 [153]"WE'LL COME BACK TO THESE POINTERS LATER!" 1510 [141]63000 1520 [153]"LOADTOP HALF OF MEMORY" 1530 [153]"DECIMAL HEX" 1540 [153]"65535=$FFFF-SPC(SPC(SPC(SPC(SPC(SPC(_TOP OF MEMORY" 1550 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$" 1560 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)RAM &" 1565 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)ROM" 1570 [153]"49152=$C000 SPC(SPC(SPC(SPC(SPC(SPC(_(null)" 1575 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$" 1576 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)BASIC" 1577 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)INTERPRETER" 1578 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)" 1580 [153]"40960=$A000 SPC(SPC(SPC(SPC(SPC(SPC(_(null)" 1590 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$_ MAY BE" 1595 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)USED BY" 1596 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)CARTRIDGE" 1600 [153]"32768=$8000 SPC(SPC(SPC(SPC(SPC(SPC(_(null)" 1660 [141]63000 1750 [153]"LOAD HOW BASIC PROGRAMS ARE STORED" 1760 [153]"RECALL THAT BASIC PROGRAMS (NORMALLY)" 1770 [153]"GO INTO MEMORY STARTING AT $0801(HEX)." 1780 [153]"LET'S LOOK AT THE BYTES THERE FOR THE" 1790 [153]"SIMPLE PROGRAM:" 1800 [153]"10 FORI=1TO10 " 1810 [153]"20 PRINT"[199](34)"*"[199](34)":NEXT" 1820 [153]"WE'LL SYS2048WAIT TO GET TO THE MLM" 1830 [153]"THEN WE'LL .M 0800-0820WAIT TO DISPLAY" 1840 [153]"THE MEMORY HOLDING THIS SIMPLE PROGRAM." 1845 [141]63000:[153]"LOADFOR:" 1846 [153]"10 FORI=1TO10 " 1847 [153]"20 PRINT"[199](34)"*"[199](34)":NEXT" 1848 [153]"WE'LL GET:" 1850 [153]" .: 0800 00 0D 08 0A 00 81 49 B2 1860 PRINT" .: 0808 31 A4 31 30 00 18 08 14 1870 [153]" .: 0810 00 99 22 2A 22 3A 82 00 1880 PRINT" .: 0818 00 00 AA AA AA AA AA AA 1890 SD$[178]"":CL$[178]"WAIT WAIT" 1891 SR$[178]"" 1900 SD[178]8:SR[178]10:CC$[178]"00":[141]55000 1910 [153]SD$"I ALWAYS HAVE 00WAIT HERE." 1920 [153]"THAT'S WHY 'SYS2048' WORKS!" 1930 [141]62000 1931 [141]55010 1950 SD[178]8:SR[178]13:CC$[178]"0D 08":[141]55000 1960 [153]SD$"THIS IS THE ADDRESS OF THE NEXTWAIT" 1970 [153]"BASIC INSTRUCTION." 1980 [141]62000 1981 [141]55010 1990 SD[178]8:SR[178]19:CC$[178]"0A 00":[141]55000 2000 [153]SD$"THIS IS THE LINE NUMBER 10WAIT" 2010 [153]" IN HEX." 2020 [141]62000 2021 [141]55010 2030 SD[178]8:SR[178]25:CC$[178]"81":[141]55000 2040 [153]SD$"THIS IS THE 'TOKEN' FOR"; 2050 [153]" FORWAIT" 2060 [141]62000 2061 [141]55010 2066 [141]55010 2070 SD[178]8:SR[178]28:CC$[178]"49":[141]55000 2080 [153]SD$"THIS IS THE ASCII CODE FOR"; 2090 [153]" IWAIT" 2100 [141]62000 2101 [141]55010 2110 SD[178]8:SR[178]31:CC$[178]"B2":[141]55000 2120 [153]SD$"THIS IS THE ASCII CODE FOR"; 2130 [153]" =WAIT" 2140 [141]62000 2141 [141]55010 2150 SD[178]9:SR[178]10:CC$[178]"31":[141]55000 2160 [153]SD$"THIS IS THE ASCII CODE FOR"; 2170 [153]" 1WAIT" 2180 [141]62000 2181 [141]55010 2190 SD[178]9:SR[178]13:CC$[178]"A4":[141]55000 2200 [153]SD$"THIS IS THE 'TOKEN' FOR"; 2210 [153]" TOWAIT" 2220 [141]62000 2221 [141]55010 2230 SD[178]9:SR[178]16:CC$[178]"31":[141]55000 2240 [153]SD$"THIS IS THE ASCII CODE FOR"; 2250 [153]" 1WAIT(AGAIN)" 2260 [141]62000 2261 [141]55010 2270 SD[178]9:SR[178]19:CC$[178]"30":[141]55000 2280 [153]SD$"THIS IS THE ASCII CODE FOR"; 2290 [153]" 0WAIT" 2300 [141]62000 2301 [141]55010 2310 SD[178]9:SR[178]22:CC$[178]"00":[141]55000 2320 [153]SD$"THIS IS THE BYTE MEANING" 2330 [153]"END OF STATEMENTWAIT." 2340 [141]62000 2341 [141]55010 2350 SD[178]9:SR[178]25:CC$[178]"18 08":[141]55000 2360 [153]SD$"THESE POINT TO ADDRESS OF" 2370 [153]"THE NEXTWAIT STATEMENT" 2380 [141]62000 2391 [141]55010 2410 [153]SD$"THIS 2ND STATEMENT BEGINS" 2420 [153]"AT $080D AS NOTED EARLIER." 2430 SD[178]8:SR[178]13:CC$[178]"0D 08":[141]55000 2435 [129]I[178]1[164]50:[130] 2440 [141]55010 2450 [161]A$:[139]A$[178]""[167]2430 2460 [153]SD$CL$:[153]CL$:[153]CL$ 2465 SD[178]9:SR[178]25:CC$[178]"18 08":[141]55000 2470 [153]SD$"THE ADDRESS OF THE 'NEXT' STATEMENT" 2480 [153]"IS GIVEN LO-BYTEWAIT THEN HI-BYTEWAIT." 2490 [153]"IT'S (LO-BYTE)+256*(HI-BYTE)." 2500 [141]62000 2501 [141]55010 2510 [153]SD$"..SAME FOR THE 'STATEMENT NUMBER'." 2520 SD[178]8:SR[178]19:CC$[178]"0A 00":[141]55000 2525 [129]I[178]1[164]50:[130] 2530 SD[178]8:SR[178]19:CC$[178]"0A 00":[141]55000 2535 [161]A$:[139]A$[178]""[167]2520 2540 [141]62000 2541 [141]55010 2550 [153]SD$"THEN COMES 2 BYTES FOR THE " 2560 [153]"STATEMENT NUMBER 20WAIT" 2570 [153]"(1ST BYTE)+256*(2ND BYTE)" 2575 SD[178]9:SR[178]31:CC$[178]"14":[141]55000 2576 SD[178]10:SR[178]10:CC$[178]"00":[141]55000 2580 [141]62000 2581 [153][200](SD$,9)[163]31)"14" 2582 [153][200](SD$,10)[163]10)"00" 2590 SD[178]10:SR[178]13:CC$[178]"99":[141]55000 2600 [153]SD$"THIS IS THE 'TOKEN' FOR PRINTWAIT" 2610 [141]62000 2611 [141]55010 2620 SD[178]10:SR[178]16:CC$[178]"22":[141]55000 2630 [153]SD$"THIS IS THE ASCII CODE FOR "[199](34) 2640 [141]62000 2641 [141]55010 2650 SD[178]10:SR[178]19:CC$[178]"2A":[141]55000 2660 [153]SD$"THIS IS THE ASCII CODE FOR *WAIT" 2670 [141]62000 2671 [141]55010 2680 SD[178]10:SR[178]22:CC$[178]"22":[141]55000 2690 [153]SD$"..THE ASCII CODE FOR "[199](34):[153]"...AGAIN" 2700 [141]62000 2701 [141]55010 2710 SD[178]10:SR[178]25:CC$[178]"3A":[141]55000 2720 [153]SD$"THE ASCII CODE FOR :WAIT" 2730 [141]62000 2731 [141]55010 2740 SD[178]10:SR[178]28:CC$[178]"82":[141]55000 2750 [153]SD$"THE TOKEN FOR NEXTWAIT" 2760 [141]62000 2761 [141]55010 2770 SD[178]10:SR[178]31:CC$[178]"00":[141]55000 2780 SD[178]11:SR[178]10:CC$[178]"00 00":[141]55000 2790 [153]SD$"THE 3 ZERO BYTES SAY" 2800 [153]"END OF THE PROGRAMWAIT!" 2810 [141]62000 2811 [153][200](SD$,10)[163]31)"00" 2812 [153][200](SD$,11)[163]10)"00 00" 2820 [141]62000 2830 SD[178]10:SR[178]31:CC$[178]"00":[141]55000 2840 [153]SD$"THIS ONE IS THE NORMAL" 2850 [153]"END OF STATEMENTWAIT" 2860 [141]62000 2861 [141]55010 2862 SD[178]11:SR[178]10:CC$[178]"00 00":[141]55000 2870 [153]SD$"THESE GIVE 00 00WAIT AS A LINK" 2880 [153]"TO THE 'NEXT' STATEMENT." 2890 [153]"MEANING NO NEXT STATEMENTWAIT." 2900 [141]62000 2901 [141]55010 2902 [153][200](SD$,11)[163]16)"AA AA AA AA AA AAWAIT" 2910 [153]SD$"THE BUNCH OF AAWAITS IS JUST......." 2920 [153]"GARBAGE!" 2940 [141]62000:[153]"LOAD": MS$[178]"AA AA AA":[141]63100 2950 [153]"LOADIF YOU REALLYCMDCMDCMDCMDCMDCMDFREFREFREFREFREFREON WANTED TO YOU" 2960 [153]"COULD ENTER THE MLM WITH SYS2048" 2970 [153]"AND WRITE (OR CHANGE) A BASIC PROGRAM" 2980 [153]"BY SIMPLY ENTERING THE APPROPRIATE" 2990 [153]"BYTES (IN HEX!) INTO THE RIGHT LOC'NS!" 3000 [153]"..BUT LEARN YOUR ASCII CODE.." 3010 [153]"AND THE SINGLE-BYTE 'TOKENS' I USE" 3020 [153]"TO IDENTIFY THE VARIOUS BASIC COMMANDS" 3030 [153]"LIKE PRINTWAIT,FORWAIT,NEXTWAIT,RUNWAIT,LISTWAIT,ETC." 3040 [153]"(TRY IT AFTERCMDCMDCMDCMDCMDFREFREFREFREFREON YOU END TUTOR)" 3050 [141]63000:[141]40000:[141]5000 4000 [153]"LOADNOW... **********" 4001 [153]" * A TEST * 4002 PRINT" **********" 4003 FORI=1TO500:NEXT:MS$=" A TEST?![146]":GOSUB63100 4010 PRINT"I'LL ASK YOU QUESTIONS ABOUT MYSELF.":MS$="GOOD!GOOD!" 4020 PRINT"IF THE ANSWER IS AN 'ADDRESS' OR" 4030 PRINT"MEMORY LOCATION GIVE IT TO ME AS A" 4040 PRINT"4 DIGIT HEX NUMBER WITH $" 4050 PRINT"(LIKE $1234)" 4060 PRINT"...UNLESS OTHERWISE SPECIFIED!" 4070 GOSUB50000:GOSUB63000 4080 FORN=1TOQQ:PRINT"[147]"Q$(N) 4085 GETA$:IFA$<>""THEN4085 4090 INPUT" [214][157][157][157]";A$:PRINT"" 4100 IFA$=A$(N)THENGOSUB63100:PRINT"":GOTO4120 4110 PRINTAN$A$(N) 4120 PRINT""M$(N):GOSUB63000:NEXT 4130 PRINT"[147]WANT TO TAKE THE **TEST** AGAIN?" 4140 INPUT" Y[157][157][157]";A$ 4150 IFA$="Y"THENPRINT"[147]":GOTO4080 4160 GOTO39999 5000 PRINT"[147]AFTER RUNNING A PROGRAM LIKE:":QT$=CHR$(34):GOSUB63900 5010 PRINT" 10 AB$=STR$(7)" 5020 PRINT"LET'S SEE WHERE I PUT THE STRING '7'." 5030 PRINT"WE'LL TYPE SYS2048[146] THEN" 5040 PRINT".M 0800-0830[146] TO SEE THE PROGRAM" 5050 PRINT".M 7FF8-7FFF[146] TO SEE THE STRING." 5060 GOSUB63000:PRINT"[147]"; 6001 PRINT".: 0800 00 0E 08 0A 00 41 42 24 6002 [153]".: 0808 B2 C4 28 37 29 00 00 00 6003 PRINT".: 0810 41 C2 02 FC 7F 00 00 AA 6004 [153]".: 0818 AA AA AA AA AA AA AA AA 6005 PRINT".: 7FF8 AA AA AA AA 20 37 12 04 6100 SD[178]3:SR[178]24:CC$[178]"00 00 00":[141]55000 6110 [153]SD$"THESE ARE THE 3 '00'-BYTES THAT END" 6120 [153]"THE PROGRAM." 6130 [141]62000:[141]55010 6140 SD[178]4:SR[178]9:CC$[178]"41 C2":[141]55000 6150 [153]SD$"41WAIT='A' IN ASCII" 6160 [153]"42WAIT='B'..BUT $80 IS ADDED" 6170 [153]"INDICATING A STRINGWAIT, GIVING C2WAIT" 6180 [141]62000:[141]55010 6190 SD[178]4:SR[178]15:CC$[178]"02":[141]55000 6200 [153]SD$"THE STRING AB$ IS 02WAIT BYTES LONG." 6210 [141]62000:[141]55010 6220 SD[178]4:SR[178]18:CC$[178]"FC 7F":[141]55000 6230 [153]SD$"AND IT'S LOCATED AT $7FFCWAIT." 6240 [141]62000:[141]55010 6250 SD[178]8:SR[178]21:CC$[178]"20 37":[141]55000 6260 [153]SD$"HERE, AT $7FFC, IS AB$." 6270 [153]"AB$ IS:20WAIT='SPACE'+37WAIT='7'" 6280 [141]62000:[141]55010 6290 SD[178]8:SR[178]27:CC$[178]"12 08":[141]55000 6300 [153]SD$"AND WHERE DOES IT SAY IT'S" 6310 [153]"2 BYTES LONG?" 6320 [153]"..AT MEMORY LOC'N $0812WAIT!" 6330 SD[178]4:SR[178]15:CC$[178]"02":[141]55000 6340 [141]55010:[161]A$:[139]A$[178]""[167]6330 6350 [153]"LOADIF, HOWEVER, YOUR PROGRAM WAS:" 6360 [153]" 10 AB$="QT$"7"QT$ 6370 [153]"WHERE DO YOU THINK THE POINTER WILL" 6380 [153]"POINT TO?" 6390 [153]"NOTWAIT TO $7FFC, BUT TO THE LOCATION" 6400 [153]"IN THE BASIC PROGRAM ITSELF WHERE" 6410 [153]"'7' IS LOCATED." 6415 [141]62000 6420 [153]SD$"THAT IS, TO $080AWAIT" 6425 [153]"..AND IT WILL BE 1 BYTE LONG!" 6430 SD[178]3:SR[178]9:CC$[178]"7":[141]55000 6440 [141]55010:[161]A$:[139]A$[178]""[167]6430 6450 [142] 39999 [153]"LOAD":MS$[178]"AU REVOIR!WAIT":[141]63100:[153]"":[128] 40000 [153]"LOADLET'S LOOK AT SOME POINTERS":[141]63900 40005 [153]"BEFORE WRITING ANYCMDCMDCMDFREFREFREON PROGRAM" 40006 [153]"(AFTER FIRST TURNING ON THE C64)" 40010 [153]"WE'LL SYS2048WAIT TO GET INTO THE MLM.." 40020 [153]"THEN .M 002B 0033WAIT..." 40030 [153]"B* 40031 PRINT" PC SR AC XR YR SP" 40032 PRINT".; 0801 32 04 5E 00 F8" 40033 PRINT".M 002B 0033" 40034 PRINT".: 002B 01 08 03 08 03 08 03 08" 40035 PRINT".: 0033 00 80 00 00 00 80 00 FF" 40036 PRINT".X _ =EXIT...REMEMBER?" 40040 SD=14:SR=09:CC$="01 08":GOSUB55000 40050 PRINTSD$"THIS SAYS BASIC PROGRAMS START" 40060 PRINT"AT $0801..READ IT BACKWARDS!" 40070 GOSUB62000:GOSUB55010 40080 SD=14:SR=15:CC$="03 08":GOSUB55000 40090 PRINTSD$"THIS SAYS THE NIL-PROGRAM ENDS" 40100 PRINT"AT $0803..AFTER 3 '00' BYTES!" 40110 GOSUB62000:GOSUB55010 40120 SD=14:SR=21:CC$="03 08":GOSUB55000 40130 PRINTSD$"THIS SAYS ARRAYS START" 40140 PRINT"AT $0803 TOO..NO ARRAYS YET!" 40150 GOSUB62000:GOSUB55010 40160 SD=14:SR=27:CC$="03 08":GOSUB55000 40170 PRINTSD$"THIS SAYS ARRAYS END" 40180 PRINT"AT $0803 TOO..NO ARRAYS YET[146]!" 40190 GOSUB62000:GOSUB55010 40200 SD=15:SR=09:CC$="00 08":GOSUB55000 40210 PRINTSD$"THIS SAYS STRINGS GO DOWN" 40220 PRINT"TO $8000..NO STRINGS YET[146]!" 40230 GOSUB62000:GOSUB55010 40240 SD=15:SR=15:CC$="00 00":GOSUB55000 40250 PRINTSD$"THIS POINTER (TO CURRENT STRING)" 40260 PRINT"WE'LL IGNORE." 40270 GOSUB62000:GOSUB55010 40280 SD=15:SR=21:CC$="00 80":GOSUB55000 40290 PRINTSD$"THIS SAYS 'TOP OF BASIC RAM' IS" 40300 PRINT"AT $8000..OF COURSE." 40310 GOSUB62000:GOSUB55010 40320 SD=15:SR=27:CC$="14 FF":GOSUB55000 40330 PRINTSD$"THIS IS THE CURRENT BASIC " 40340 PRINT"LINE NUMBER..IGNORE!" 40350 GOSUB62000:GOSUB55010 40360 PRINT"[147]OK..NOW WE'LL WRITE A SHORT PROGRAM[146]:":FORI=1TO500:NEXT 40370 PRINT"10 FORI=1TO10:A(I)=I*I:A$(I)=STR$(I)" 40380 PRINT"20 PRINT"CHR$(34)"+"CHR$(34)":NEXT " 40390 PRINT"THEN, BEFORE[157][157][157][157][157][157][184][184][184][184][184][184][145] RUNNING IT" 40400 PRINT"WE'LL SYS2048[146]:" 40410 PRINT"B* 40420 [153]" PC SR AC XR YR SP" 40430 [153]".; 0801 32 04 5E 00 F8" 40440 [153]".M 002B 0033" 40450 [153]".: 002B 01 08 2E 08 2E 08 2E 08" 40460 [153]".: 0033 00 80 DA 7F 00 80 14 FF" 40470 [153]".X" 40480 SD[178]14:SR[178]09:CC$[178]"01 08":[141]55000 40490 [153]SD$"THE BASIC PROGRAM STARTS" 40500 [153]"AT $0801..OF COURSE!" 40510 [141]62000:[141]55010 40520 SD[178]14:SR[178]15:CC$[178]"2E 08":[141]55000 40530 [153]SD$"THE BASIC PROGRAM ENDS" 40540 [153]"AT $082E..AFTER THE 3 '00' BYTES." 40550 [141]62000:[141]55010 40560 SD[178]14:SR[178]21:CC$[178]"2E 08 2E 08":[141]55000 40570 [153]SD$"NO VARIABLES, NO ARRAYS OR" 40580 [153]"STRINGS CREATED YET." 40590 [141]62000:[141]55010 40600 SD[178]15:SR[178]09:CC$[178]"00 80 DA 7F 00 80 14 FF":[141]55000 40610 [153]SD$"NOTHING WORTH NOTING (!)" 40620 [153]"HAS HAPPENED YET." 40630 [141]62000:[141]55010 40640 [153]SD$"NOWWAIT WE'LL RUNCMDCMDCMDFREFREFREON THE PROGRAM:" 40650 [153]"WATCH...." 40655 [153]" " 40656 [153]"10 FORI=1TO10:A(I)=I*I:A$(I)=STR$(I)" 40657 [153]"20 PRINT"[199](34)"+"[199](34)":NEXT" 40658 [129]I[178]1[164]5:[153]" ":[130] 40660 [141]62000:[141]55010 40670 SD[178]14:SR[178]09:CC$[178]"01 08":[141]55000 40680 [153]SD$"START OF BASIC WON'T CHANGE" 40690 [141]62000:[141]55010 40700 SD[178]14:SR[178]15:CC$[178]"2E 08":[141]55000 40710 [153]SD$"END OF BASIC WON'T CHANGE" 40720 [153]"(IT'S ALSO 'START OF VARIABLES)" 40730 [141]62000:[141]55010 40740 SD[178]14:SR[178]21:CC$[178]"35 08 9B 08":[141]55000 40750 [153]SD$"ARRAY A(I) IS STORED FROM" 40760 [153]"$0835 AND 'UP'." 40770 [141]62000 40771 [153]SD$"IT ACTUALLY ENDS AT $0872" 40772 [153]"AND INFO ON WHERE A$(I) IS STORED" 40773 [153]"GOES INTO $0873-$089B." 40774 [141]62000:[141]55010 40780 SD[178]15:SR[178]09:CC$[178]"D7 7F":[141]55000 40790 [153]SD$"ARRAY A$(I) IS STORED FROM" 40800 [153]"$8000 (REALLY $7FFF) DOWNWAIT T0 $7FD7" 40810 [141]62000 40820 [153]SD$"REMEMBER..THE LOC'NS OF A$(I)" 40830 [153]"ARE KEPT IN $0873-$089B" 40840 [141]62000 40850 [153]SD$"THE STRINGS THEMSELVES='1'-'10'" 40860 [153]"ARE STORED IN $7FD7-$7FFF." 40870 [141]62000:[141]55010 40875 SD[178]14:SR[178]15:CC$[178]"2E 08 35 08":[141]55000 40880 [153]SD$"SOWAIT...THE VALUE OF 'I' IS STORED" 40890 [153]"IN 7 BYTES FROM $082E TO $0834" 40900 [141]62000 40910 [153]SD$"2 BYTES FOR IT'S NAME:IWAIT" 40920 [153]"5 BYTES FOR IT'S VALUE=1,THEN 2,ETC." 40930 [141]62000:[141]55010 40940 SD[178]14:SR[178]21:CC$[178]"35 08 9B 08":[141]55000 40950 [153]SD$"VALUES OF A(I) GO INTO LOC'NS" 40960 [153]"$0835-$0872 (INCLUDING 2 BYTES" 40970 [153]"FOR IT'S NAME AWAIT)" 40980 [141]62000 40990 [153]SD$"THE LAST PART OF THE RANGE" 41000 [153]"$0835-$089B IS TO KEEP TRACK OF" 41010 [153]"WHERE EACH A$(I) IS STORED IN HI RAM." 41020 [141]62000:[141]55010 41030 [153]SD$"IF YOU TYPE CLRWAIT AFTER RUNWAITING" 41040 [153]"THE PROGRAM,ALL VARIABLES,ARRAYS AND" 41050 [153]"STRINGS GET CLEARED." 41060 [141]62000 41070 [153]SD$"THE ABOVE POINTERS REVERT TO..." 41080 [141]62000 41090 SD[178]14:SR[178]09:CC$[178]"01 08 2E 08 2E 08 2E 08":[141]55010 41100 SD[178]15:SR[178]09:CC$[178]"00 80 DA 7F 00 80 14 FF":[141]55010 41110 [153]SD$"JUST THE PROGRAM..FROM $0801" 41120 [153]"TO $082E" 41130 [141]62000 41140 [153]SD$"..AND GUESS WHAT HAPPENS IF YOU" 41150 [153]"TYPE NEWWAIT!!" 41160 [141]62000 41180 SD[178]14:SR[178]09:CC$[178]"01 08 03 08 03 08 03 08":[141]55010 41190 SD[178]15:SR[178]09:CC$[178]"00 80 DA 7F 00 80 14 FF":[141]55010 41200 [153]SD$"I PUT 00 00 00 INTO $0800-$0802" 41210 [153]"..AND THAT'S ALL FOLKS!" 41220 [141]62000:[153]"LOAD":MS$[178]"THAT'S ALL":[141]63100:[142] 50000 QQ[178]10:AN$[178]"ANSWER=" 50001 A$(1)[178]"V2":[139][194](32768)[178]9 [167]A$(1)[178]"V4" 50004 [129]I[178]2[164]QQ:[135]A$(I):[130] 50005 [131] $A000,$0400,$0801,3,N,Y,$033C,Y,Y 51000 [129]I[178]1[164]QQ:[135]Q$(I):[130] 51001 [131] "LOADWHAT BRAND OF BASIC HAVE I GOTWAIT V2/V4" 51002 [131] "LOADWHERE DO THE BASIC ROMS START" 51003 [131] "LOADWHERE DOES SCREEN MEMORY START" 51004 [131] "LOADWHERE DO BASIC PROGRAMS STARTWAIT" 51005 [131] "LOADBASIC PROGRAMS END IN ? ZERO BYTES" 51006 [131] "LOADPEEK(1025)+256*PEEK(1026)WAIT=1ST STATEMENT NUMBER(Y/N)" 51007 [131] "LOADSTRINGS ARE STORED AT TOP OF RAMWAIT(Y/N)" 51008 [131] "LOADTHE CASSETTE BUFFER STARTS WHERE" 51009 [131] "LOAD$002B/$002C=POINTER TO START OF BASICWAIT(Y/N)" 51010 [131] "LOAD$0037/$0038=POINTER TO TOPOF RAMWAIT(Y/N)" 52000 [129]Q[178]1[164]QQ:[135]M$(Q):[130] 52001 [131] IF PEEK(32768)=9 THEN IT'S V4. 52002 [131] FROM $A000 TO $BFFF. 52003 [131] T0 $07FF..JUST BEFORE START OF BASIC. 52004 [131] 2048=$0800 HAS '00' 52005 [131] THE 'LINK' IS 00 00. 52006 [131] ABOVE GIVES 'LINK' TO 2ND STATEMENT 52007 [131] THEY'RE STORED FROM $7FFF DOWN 52008 [131] DIRTY QUESTION!! 52009 [131] 43/44 IN DECIMAL 52010 [131] 55/56 IN DECIMAL 52999 [142] 55000 [153][200](SD$,SD)[200](SR$,SR)""CC$"WAIT":[142] 55010 [153][200](SD$,SD)[200](SR$,SR)CC$"WAIT":[142] 60000 [143] INITIALIZE 60001 BT$[178]"":[129]I[178]1[164]24:BT$[178]BT$[170]"":[130] 60002 PT$[178]"ORTANTANTANTANTANTANTANTANTANTAN^CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(null)(null)CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD/=TANTANTANTANTANTANTANTAN=EXP" 60003 PT$[178]PT$[170]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(null)TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB((null)CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDFN============THEN" 60004 PT$[178]PT$[170]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(null)(null)TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB((null)(null)ONONONONCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD" 60005 PT$[178]BT$[170]"ONONONONONON"[170]PT$[170]"STOP" 60007 ML$[178]"" 60008 WD[178]40:CRT[178]1024:[153][199](142) 60009 W2[178]WD[173]2:W3[178]WD[171]1:W1$[178][202]([196](WD),2):[151]53281,15:[151]53280,12:[153]"STOP" 60010 W2$[178][202]([196](W2),2):W3$[178][202]([196](W3),2) 60020 [142] 62000 [141]63000 62001 [153]SD$CL$:[153]CL$:[153]CL$ 62003 [142] 63000 [153]"HIT RETURNWAIT TO CONTINUE"; 63001 [161]A$:[139]A$[179][177]""[167]63001 63002 [161]A$:[139]A$[178]""[167]63002 63003 [142] 63100 [129]T[178]1[164]5:[153]PT$MS$; 63101 [153]PT$" "; 63102 [153]PT$MS$;:[130] 63103 [153]:[142] 63900 SD$[178]"":CL$[178]"WAIT WAIT" 63901 SR$[178]"" 63902 [142]